<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>InitPHP框架 PHP框架 - A PHP Framework - File文件操作</title>
<link href="static/common.css" type="text/css" rel="stylesheet" />
<meta name="keywords" content="php框架，国产php框架, initphp框架，MVC，分层体系" />
<meta name="description" content="initphp框架是一款国产php框架。initphp框架主要基于MVC模式，具备代码清晰，操作简单，功能齐全，开发快速，高效安全等特点，是您选择php框架的首选。" />
</head>
<body>
<div class="header">
  <div class="header_nav">InitPHP (A PHP Framework) 用户手册</div>
  <div class="header_div">
    <div class="header_title">第6章 6.7.6 File文件操作</div>
    <div class="header_right"><a href="6_7_5.htm">上一页</a> <a href="6_7_7.htm">下一页</a> </div>
  </div>
</div>


<div class="title">
  <h3>接口描述：</h3>
</div>
<p>文件操作类。属于InitPHP框架扩展类，需要通过$this->getLibrary()方法获取</p>

<div class="title">
  <h3>使用方法：</h3>
</div>
<pre id="php" class="php">
$file = $this->getLibrary('file'); 
</pre>
<div class="nav"></div>
<div class="title">
  <h3>实例：</h3>
</div>
<pre id="php" class="php">
class indexController extends Controller {
	
	public $initphp_list = array('test'); 
	
	public function run() {
		$file = $this->getLibrary('file');
		$file->create_file('test.txt');
		$file->write_file('test.txt', 'saodsaod');
		$file->copy_file('test.txt', 'test1.txt');
		$file->del_file('test.txt');
		$file->create_dir('aa');
		$file->create_dir('bb/aa');
		$file->del_dir('aa');
		$this->view->set_tpl('test'); //设置一个test.htm的模板页面
		$this->view->display(); //模板显示
	}
	
	public function test() {
		echo 'index.php?c=index&a=test 才会执行';
		$code = $this->getLibrary('code');
		$code->getcode();
	}
	
	
	/**
	 * @return testService
	 */
	private function getTestService() {
		return InitPHP::getService('test','test');
	}

}</pre>
<div class="title">
  <h3>具体类：</h3>
</div>
<pre id="php" class="php">
if (!defined('IS_INITPHP')) exit('Access Denied!');   
/*********************************************************************************
 * InitPHP 2.1 国产PHP开发框架  扩展类库-文件操作类
 *-------------------------------------------------------------------------------
 * 版权所有: CopyRight By initphp.com
 * 您可以自由使用该源码，但是在使用过程中，请保留作者信息。尊重他人劳动成果就是尊重自己
 *-------------------------------------------------------------------------------
 * $Author:zhuli
 * $Dtime:2011-10-09 
***********************************************************************************/
class fileInit {
	
	/**
	 *	创建空文件
	 * 	@param  string  $filename  需要创建的文件
	 *  @return 
	 */
	public function create_file($filename) {
		if (file_exists($filename)) return false;
		$this->create_dir(dirname($filename)); //创建目录
		return @file_put_contents($filename,'');
	}
	
	/**
	 *	写文件
	 * 	@param  string  $filename  文件名称
	 * 	@param  string  $content   写入文件的内容
	 * 	@param  string  $type      类型，1=清空文件内容，写入新内容，2=再内容后街上新内容
	 *  @return 
	 */
	public function write_file($filename, $content, $type = 1) {
		if ($type == 1) {
			if (file_exists($filename)) $this->del_file($filename); //删除文件
			$this->create_file($filename);
			$this->write_file($filename, $content, 2);
		} else {
			if (!is_writable($filename)) return false;
			$handle = @fopen($filename, 'a');
			if (!$handle) return false;
			$result = @fwrite($handle, $content);
			if (!$result) return false;
			@fclose($handle);
			return true;
		}
	}
	
	/**
	 *	拷贝一个新文件
	 * 	@param  string  $filename    文件名称
	 * 	@param  string  $newfilename 新文件名称
	 *  @return 
	 */
	public function copy_file($filename, $newfilename) {
		if (!file_exists($filename) || !is_writable($filename)) return false;
		$this->create_dir(dirname($newfilename)); //创建目录
		return @copy($filename, $newfilename);
	}
	
	/**
	 *	移动文件
	 * 	@param  string  $filename    文件名称
	 * 	@param  string  $newfilename 新文件名称
	 *  @return 
	 */
	public function move_file($filename, $newfilename) {
		if (!file_exists($filename) || !is_writable($filename)) return false;
		$this->create_dir(dirname($newfilename)); //创建目录
		return @rename($filename, $newfilename);
	}
	
	/**
	 *	删除文件
	 * 	@param  string  $filename  文件名称
	 *  @return bool
	 */
	public function del_file($filename) {
		if (!file_exists($filename) || !is_writable($filename)) return true;
		return @unlink($filename);
	}
	
	/**
	 *	获取文件信息
	 * 	@param  string  $filename  文件名称
	 *  @return array('上次访问时间','inode 修改时间','取得文件修改时间','大小'，'类型')
	 */
	public function get_file_info($filename) {
		if (!file_exists($filename)) return false;
		return array(
			'atime' => date("Y-m-d H:i:s", fileatime($filename)),
			'ctime' => date("Y-m-d H:i:s", filectime($filename)),
			'mtime' => date("Y-m-d H:i:s", filemtime($filename)),
			'size'  => filesize($filename),
			'type'  => filetype($filename)	
		);
	}
	
	/**
	 *	创建目录
	 * 	@param  string  $path   目录
	 *  @return 
	 */
	public function create_dir($path) {
		if (is_dir($path)) return false;
		fileInit::create_dir(dirname($path));
		@mkdir($path);
		@chmod($path, 0777);
		return true;
	}
	
	/**
	 *	删除目录
	 * 	@param  string  $path   目录
	 *  @return 
	 */
	public function del_dir($path) {
		$succeed = true;
		if(file_exists($path)){
			$objDir = opendir($path);
			while(false !== ($fileName = readdir($objDir))){
				if(($fileName != '.') && ($fileName != '..')){
					chmod("$path/$fileName", 0777);
					if(!is_dir("$path/$fileName")){
						if(!@unlink("$path/$fileName")){
							$succeed = false;
							break;
						}
					}
					else{
						self::del_dir("$path/$fileName");
					}
				}
			}
			if(!readdir($objDir)){
				@closedir($objDir);
				if(!@rmdir($path)){
					$succeed = false;
				}
			}
		}
		return $succeed;
	}
} 
</pre>

<div class="footer">版权所有：<a href="">http://initphp.com</a> InitPHP (A PHP Framework) By @Aliyun_zhuli</div>
<script src="static/jquery.js" type="text/javascript"></script>
<link href="static/prettify/prettify.css" rel="stylesheet" type="text/css">
<script src="static/prettify/prettify.js" type="text/javascript"></script>
<script type="text/javascript" src="static/comm.js"></script>
</body>
</html>
